#include "bflb_gpio.h"
#include "board.h"

struct bflb_device_s *gpio;

uint32_t gpio_group[] = {GPIO_PIN_12, GPIO_PIN_14, GPIO_PIN_15};
int main(void)
{
    board_init();

    gpio = bflb_device_get_by_name("gpio"); // get gpio device

    // set gpio pin mode
    bflb_gpio_init(gpio, GPIO_PIN_12, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
    bflb_gpio_init(gpio, GPIO_PIN_15, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);

    
    bflb_gpio_reset(gpio, GPIO_PIN_12);
    bflb_gpio_reset(gpio, GPIO_PIN_14);
    bflb_gpio_reset(gpio, GPIO_PIN_15);
    uint8_t i = 0;
    while (1) {
        for(uint8_t j = 0; j < 2; j++) {
            bflb_gpio_set(gpio, gpio_group[i]);
            bflb_mtimer_delay_ms(200);
            bflb_gpio_reset(gpio, gpio_group[i]);
            bflb_mtimer_delay_ms(200);
        }
        bflb_gpio_set(gpio, gpio_group[i]);
        bflb_mtimer_delay_ms(500);
        bflb_gpio_reset(gpio, gpio_group[i]);
        i = (i + 1) % 3;
    }
}